#在每一轮循环中，将数组中相邻的两个元素进行比较，如果前一个元素大于后一个元素，则进行交换
def bubble_sort(arr):
    n = len(arr)#n赋值为数组的长度
    for i in range(n):
        #创建0到n-1的循环,因为当i=n-1时，数组已经排序完成，进入到下一个循环会直接不满足然后退出，所以不需要设为n-1
        for j in range(0, n-i-1):#i表示已经排序完成的元素个数
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

def bullle_sort2(arr):
    n = len(arr)
    while n > 1:
        for i in range(n-1):
            if arr[i] > arr[i+1]:
                arr[i], arr[i+1] = arr[i+1], arr[i]
        n -= 1
    return arr

#时间复杂度：O(n^2)，但是是最优雅的排序算法
arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))